package com.order.manager.Model.other;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.order.manager.Model.MenuInfo;
import com.order.manager.Model.OrderMenuInfo;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单查看模型
 * 用于展示订单的综合信息，适用于订单详情页和列表页的信息展示
 * 包含订单基本信息、金额、状态、配送信息及菜品明细
 * 向学生端提供订单的视图
 */
@Data
@NoArgsConstructor
public class OrderView {
    /** 订单唯一标识 */
    private String orderId;

    /** 订单所属商店名称 */
    private String shopName;

    /** 订单总金额（使用BigDecimal保证精度） */
    private BigDecimal money;

    /** 下单时间（前后端格式：yyyy-MM-dd HH:mm:ss，时区：北京时间） */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date inputDate;
    /** 订单类型（1:外卖，2:到店自提，3:预订等） */
    private int type;
    /** 订单备注信息 */
    private String demo;
    /** 订单收货地址 */
    private String address;
    /** 配送状态（待配送、配送中、已完成等） */
    private String sendState;
    /** 配送员姓名 */
    private String senderName;
    /** 支付状态（0:未支付，1:已支付，2:已退款） */
    private int applyState;
    /** 订单包含的菜品列表（每个菜品包含名称、价格、数量等信息） */
    private List<MenuCount> menuCounts;
}